﻿using Authentication.Model.Model;
using Common.Contract.Authentication.Record;
using Common.Contract.Paging;
using Common.Contract.SystemConfig.Record;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Authentication.Model.Interface
{
    public interface IEditDaoProvider
    {
        List<EditDaoRequest> RetrieveListEditDaoRequest(out int totalRecord, UserRecord currentUser, FilterRecord textSearch = null, int pagesize = 0, int pageindex = 0, SortRecord sortRecord = null);
        EditDaoRequest SaveEidtDaoRequest(out string error,EditDaoRequest record);
        bool UpdateStatusEditDaoRequest(EditDaoRequest checkUser);
        EditDaoRequest RetrieveRequestByRequestId(int id, UserRecord currentUser);
        bool UpdateStatusListEditDaoRequest(int[] listId, int status);

        bool SaveEidtDaoRequestDetail(EditDaoRequestDetail requestDetail);

        EditDaoRequestDetail RetrieveRequestDetailByRequestId(int requestId, UserRecord currentUser);
        List<EditDaoRequestDetail> RetrieveListRequestDetailByListDao(List<string> listDao);
        List<EditDaoRequestDetail> RetrieveListRequestDetailByListRequestId(List<int> listRequest);
    }
}
